Skip to content

在 Windows 上使用 WSL 2 安裝 Linux

TLDR

  • WSL 2 提供完整的 Linux 內核,並支援與 Windows 檔案系統的雙向存取。
  • 安裝 WSL 2 建議使用 wsl --install 指令,並務必將預設版本設定為 2。
  • Docker Desktop 整合 WSL 2 可大幅提升資源分配效率與啟動速度。
  • 若需同時運行 Windows 與 Linux Containers,建議將 Docker Desktop 切換至 Windows Containers 模式,並在 WSL 2 的 Linux 發行版中獨立安裝 Docker Engine。
  • 透過檔案總管存取 Linux 檔案時,建議將資料存放在 /home/{使用者帳號}/ 目錄下,以避免檔案權限或存取異常問題。

WSL 2 安裝與管理

在 Windows 10 (2004 版以上) 或 Windows 11 環境下,WSL 2 是運行 Linux 的首選方案。

安裝步驟

在 Windows PowerShell (系統管理員身分) 執行以下指令:

  1. 安裝 WSL 2:

    bash
    wsl --install

    註:若需指定特定發行版,可使用 wsl --install -d <DistributionName>

  2. 設定預設版本為 2:

    bash
    wsl --set-default-version 2
  3. 設定特定發行版的版本:

    bash
    wsl --set-version <DistributionName> 2

常見管理指令

  • 查詢可安裝清單:wsl --list --online
  • 查詢已安裝清單與狀態:wsl --list --verbose
  • 設定預設 Linux 發行版:wsl --set-default <DistributionName>
  • 移除 Linux 發行版:wsl --unregister <DistributionName>

WARNING

移除 Linux 發行版將會永久刪除該發行版內的所有資料,無法復原。


Docker Desktop 與 WSL 2 整合

將 Docker Desktop 整合至 WSL 2 可獲得更好的效能表現,包括動態記憶體分配與更快的啟動速度。

設定方式

在 Docker Desktop 設定中進行以下調整:

  • General: 勾選 Use the WSL 2 based engine
  • Resources > WSL Integration: 啟用 Enable integration with my default WSL distro,並在下方清單中勾選需要整合的 Linux 發行版。

同時運行 Windows 與 Linux Containers

由於 LCOW (Linux Container On Windows) 已廢止,若需同時運行兩者,建議採取「Docker Desktop 切換至 Windows Containers 模式」搭配「WSL 2 內安裝 Docker Engine」的架構。

設定步驟

  1. 啟用 Windows 容器功能:
    powershell
    Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All
  2. 若在 Linux 內執行 docker-compose up 遇到 permission denied 錯誤,通常是因為 Docker socket 權限問題,需確認當前使用者是否已加入 docker 群組。

跨系統檔案存取

WSL 2 允許 Windows 與 Linux 檔案系統互相存取:

  • Windows 存取 Linux:在檔案總管路徑列輸入 \\wsl$\<DistributionName>
  • Linux 存取 Windows:透過 /mnt/<WindowsDriveLetter> 路徑存取 Windows 硬碟。

TIP

踩雷紀錄:透過網路芳鄰存取 Linux 檔案時,非 /home/ 目錄下的檔案在重開機後可能出現存取異常。建議將重要資料集中存放在 Linux 的用戶資料夾內。


異動歷程

    • 初版文件建立。
    • 將簡寫指令改為完整指令。
    • 補充解除安裝 WSL 的指令。
    • 嘗試提供之前問題的解決方案。
    • 修正設定預設 Linux 發行版的指令。